Help systems have existed for at least as long as personal computers. The main purpose of such help systems is to provide information that aids computer users in their effort to understand the operation of a particular software program or operating system. Originally, this help came in the form of printed documentation. There was the additional option of verbal support through telephone help desks and customer training, both provided by the application developer at substantial additional cost to the customer. Today, most help systems are constructed from electronic documents that have extensive search facilities and hyper-link facilities to simplify navigation. However, these help systems still prove frustrating for users. Hence, there is continued need for telephone support, third party textbooks and training courses. In addition, these help systems are usually implemented as separate applications with little or no direct relation to the application on which the help systems are providing help.
As stated above, conventional help systems generally provide search facilities, which allow a user to retrieve information pertaining to a desired topic of a software program. This can take many forms, such as clicking on a word or phrase in an index, typing a word, phrase or sentence into a search window, or inputting a verbal command via a microphone connected to a computer.
In each case, the result of the help search is usually in the form of text and diagrams, which may illustrate an operational process for performing a certain task in the respective computer program. These text and diagrams exist as static media, which has been created by a software program to be viewed by a user.
In more ambitious help systems, videos and/or slideshows are implemented to illustrate an operational process of a computer program. These videos and slideshows can comprise screen captures as the computer program is being operated to perform a particular task. The videos and/or slideshows can then be played back at a suitable frame rate so that a user can view the operational process. However, these media are still “static” in the sense that the media exist as finished pieces of media that a user views, e.g., for instructional purposes. Such static media is a not a result of an active software being operated in real time, but rather is a result of the software being used to create the static media to illustrate an operational process.
A concern with conventional help systems is that the static media provided by the help system do not allow a user to interact with the computer program being presented in the static media. Thus, the user has to switch between the static media and an active computer program to personally perform or repeat one or more steps of the operational process illustrated in the static media. In addition, the user must perform all the previous steps to get to a desired step of the illustrated operational process, which may be near the end of the process. Furthermore, if the user has been working on the active computer program, using this computer program to perform or repeat one or more steps of the illustrated operational process may result in a loss of existing work product on the computer program.
In view of this concern, what is needed is a method for recording and replaying operations in a computer program that allows a user to interact with the computer program as recorded operations are being replayed.